iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
自我挑戰組

30 天程式學習筆記:我的自學成長之路系列 第 13

[DAY 13] 告別混亂!教你用 Python 一次更改大量檔案名稱

  • 分享至 

  • xImage
  •  

你是否曾經為了整理大量的圖片素材而苦惱?透過 Python ,你可以輕鬆將大量圖片按照順序重新命名,大幅提升工作效率!這段內容非常適合需要將大量圖像文件或數據文件按順序排列的工作流程,特別是當原始文件名混亂或不規則時。它可以幫助組織資料集,使得後續的分析、處理或展示更加方便和直觀。

方法

將指定資料夾中的所有 .jpg 文件按編號順序重命名,將原來的文件名轉換成按序排列的三位數字格式(例如,001.jpg, 002.jpg, ...)。這對於需要將文件按固定順序排列的應用場景特別有用,比如圖像處理、數據分析等。以下是程式碼的詳細解釋:

  1. 資料夾路徑
    • folder_path = "F:\\folder_path":這行定義了包含所有圖像的資料夾路徑。程式將在這個資料夾中操作所有文件。
  2. 讀取並排序文件名
    • file_names = os.listdir(folder_path):使用 os.listdir() 函式來獲取資料夾中的所有文件名。
    • file_names.sort(key=lambda x: int(os.path.splitext(x)[0])):將文件名按數字順序排序。os.path.splitext(x)[0] 提取文件名中的數字部分,並將其轉換為整數以進行排序。
  3. 文件名重命名
    • count = 1:初始化一個計數器 count,從 1 開始,用於生成新的文件名。
    • for filename in file_names::遍歷排序後的文件名列表。
    • new_filename = f"{count:03d}.jpg":使用 Python 字符串格式化功能創建新的文件名,格式為三位數的數字加上 .jpg,例如 001.jpg
    • os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename)):使用 os.rename() 函式將文件重命名為新文件名。
    • count += 1:每次迭代後將計數器 count 加 1,生成下一個新文件名。

完整Python程式碼

import os

# 將資料夾位置替換為指定資料夾位置
folder_path = "F:\\folder_path"
file_names = os.listdir(folder_path)
file_names.sort(key=lambda x: int(os.path.splitext(x)[0]))

# 使用字符串格式化來實現
count = 1
for filename in file_names:
    new_filename = f"{count:03d}.jpg"
    os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))
    count += 1

上一篇
[DAY 12] Airflow 踩坑指南: Docker 佈署、服務介接、Power BI 與 Selenium 整合挑戰
下一篇
[DAY 14] 從大海撈針到精準打擊:利用 Python 篩選和複製特定檔案
系列文
30 天程式學習筆記:我的自學成長之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言